package edu.tms.dao;

import java.util.List;
import java.util.Map;

import edu.tms.bean.Dorm;
import edu.tms.bean.Major;
import edu.tms.crud.JdbcUtil;
import edu.tms.dao.common.CommnonDao;

/**
 * 寝室表dao
 * @author Administrator
 *
 */
public class DormDaoImp implements CommnonDao<Dorm>{
	/**
	 * 保存内容
	 * @param value
	 * @return 
	 * @throws Exception
	 */
	@Override
	public long save(Dorm value) throws Exception {
		String sql="INSERT INTO t_dorm VALUE (NULL,?,?,?,1);";
		return JdbcUtil.insertAuto(sql, 
				value.getDormName(),
				value.getDormSize(),
				value.getCheckInState());
	}
	/**
	 * 修改内容
	 * @param value
	 * @throws Exception
	 */
	@Override
	public int update(Dorm value) throws Exception {
		String sql="UPDATE t_dorm SET dorm_name=?,dorm_size =?,";
				sql+="check_in_state=?,dorm_state=? WHERE dorm_id=?;";
		return JdbcUtil.update(sql, value.getDormName(),
				value.getDormSize(),
				value.getCheckInState(),
				value.getDormState(),
				value.getDormId());
	}
	/**
	 * 删除内容
	 * 寝室考勤表t_dorm_check，教师表t_teacher，学生表t_student
	 * @param value
	 * @throws Exception
	 */
	@Override
	public int delete(Dorm value) throws Exception {
		String sql="DELETE FROM t_dorm WHERE dorm_id=?;";
		return JdbcUtil.update(sql, value.getDormId());
	}
	/**
	 * 查找所有的内容
	 * 寝室考勤表t_dorm_check，教师表t_teacher，学生表t_student
	 * @param pageNo 第几页
	 * @param pageSize 每页数字
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<Dorm> findAll(int pageNo, int pageSize) throws Exception {
		String sql="SELECT * FROM t_dorm LIMIT ?,?;";
		List<Dorm> dorms=JdbcUtil.query(Dorm.class, sql,pageSize*(pageNo-1),pageSize);
		return dorms;
	}
	/**
	 * 查找单一实体
	 * 寝室考勤表t_dorm_check，教师表t_teacher，学生表t_student
	 * @param Key
	 * @throws Exception
	 */
	@Override
	public Dorm findByKey(Object Key) throws Exception {
		String sql="SELECT * FROM t_dorm WHERE dorm_id=? OR dorm_name=?;";
		return (Dorm) JdbcUtil.uniqueBean(Dorm.class, sql,Key,Key);
	}

	/**
	 * String 对应  数据库 列名（comment)
	 * Object 对应相应列名值
	 * 返回的是所查找的类中的数据。方便EXCEL导出
	 */
	@Override
	public List<Map<String,Object>> getMapList() throws Exception {
		// TODO Auto-generated method stub
		return null;
	}
	
	
	@Override
	public List<Dorm> findAll(Object key, int pageNo, int pageSize) throws Exception {
		String sql="SELECT * FROM t_dorm WHERE dorm_id=? OR dorm_name=? LIMIT ?,?;";
		@SuppressWarnings("unchecked")
		List<Dorm> dorm=JdbcUtil.query(Major.class, sql, key,key,pageSize*(pageNo-1),pageSize);
		return dorm;
	}

}
